<?php
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
*/

/**
 * Description of Lista
 *
 * @author daniel
 */

class FachadaBD{

    // Para implementar el patron singleton.
    private static $instancia;

    // Metodo que permite obtener la unica instancia de la clase.
    public static function getInstancia() {

        //si no existe instancia de la clase se crea
        // si existe se retorna la instancia existente.
        if( self::$instancia == null ) {
            self::$instancia = new self();
        }

        return self::$instancia;
    }

    // Privado se previene la creacion via new.
    private function __construct() {

    }

    // Para evitar la clonacion de este objeto.
    private function __clone() {
        throw new Exception('No se puede clonar');
    }

    // Consultar Generico.
    function consultar($query,$link){

        $result = array();
        
        // Hace el query y lo guarda.
        if(!$query = @ mysql_query($query,$link))
            return false;

        // Saca las tuplas del resultado del query anterior.
        for($i=0; $row = mysql_fetch_array($query); $i++){

            $result[$i] = $row;
        };

        return $result;
    }
    

    // Inserta una persona afectada.
    function insertarPersonaAfectada($persona) {

        // Construye el query para insertar una persona afectada.
        $query = "INSERT INTO persona_afectada(descripcion, nombre,
                                               fecha_desaparicion, ci, ubicado)
                  VALUES ('$persona->descripcion', '$persona->nombre',
                          '$persona->fechaDesaparicion', '$persona->ci',
                          '$persona->ubicado');";

        // Se conecta a una base de datos.
        $conexion = $this->conectarBD();

        // Selecciona una base de datos.
        $conexion = $this->seleccionarBD($conexion, "Proyecto");

        // Hace la consulta.
        if (!mysql_db_query("Proyecto", $query)) {
            return false;
        }

        // Se desconecta.
        $this->desconectar($conexion);
        
        return true;
    }

    // Retorna una lista de personas afectadas.
    function consultarPersonaAfectada(){

        // Construye el query.
        $query = "SELECT * FROM persona_afectada;";

        // Se conecta a una base de datos.
        $conexion = $this->conectar("localhost", "proyecto", "");

        // Selecciona una base de datos.
        $conexion = $this->seleccionarBD($conexion, "Proyecto");

        /*/ Hace la consulta.
        if (!$result = @ mysql_db_query("Proyecto", $query)) {
            return false;
        }*/

        $result = $this->consultar($query, $conexion);

        return $result;
    }


    //Inserta Zona en Emergencia
    function insertarZona($zona){

        //Se elabora la consulta
        $query = "INSERT INTO zona_emergencia VALUES ('{$zona->getId()}','{$zona->getTipo()}', '{$zona->getFecha()}');";

       // Se conecta a una base de datos.
        $conexion = $this->conectarBD();
        // Selecciona una base de datos.
        $conexion = $this->SelectBD($conexion);

        // Hace la consulta.
        if (!mysql_db_query("Proyecto", $query)) {
            return false;
        }

                        ////Se ingresan los puntos en la tabla Coordenadas///

        //Se obtienen las coordenadas
        $packed = "{$zona->getCoordenadas()}";

        //Se separan las coordenadas por ;
        $data = split(";",$packed);

        //Se ingresa coordenada por coordenada en la tabla coordenadas
        for($i = 0; $i < count($data)-1; $i++) {
                 $dat = split(",",$data[$i]);

                 //Se elabora la consulta
                 $query = "INSERT INTO coordenadas VALUES('{$zona->getId()}',".$dat[0].",".$dat[1].",'{$i}')";
                 
                 //Se hace la consulta en la base de datos.
                 if(!mysql_query($query,$conexion)) {
                      echo "Error al insertar";
                 };

        }

       $this->desconectar($conexion);

    }

    //Elimina Zona en Emergencia
    function eliminarZona($id){
        
        $query = "DELETE FROM zona_emergencia WHERE nombre = '{$id}'";
       
        // Se conecta a una base de datos.
        $conexion = $this->conectarBD();

        // Selecciona una base de datos.
        $conexion = $this->SelectBD($conexion);

        $this->save($query);
      
        // Se desconecta.
        $this->desconectar($conexion);
        
        return true;
    }

    //Consulta Zona en Emergencia
    function consultarZona($fecha){



    }
    


    //
    function insertarCentroApoyo($centro){

        //Se elabora la consulta

        $query = "INSERT INTO centro_apoyo VALUES ('{$zona->getNombre()}','{$zona->getUbicacion()}','{$zona->getCoordenadas()}','{$zona->getCapacidad()}','{$zona->getUbicado()}', '{$zona->getTipo()}', '{$zona->getDesastre()}');";

       // Se conecta a una base de datos.
        $conexion = $this->conectarBD();
        // Selecciona una base de datos.
        $conexion = $this->SelectBD($conexion);

        // Hace la consulta.
        if (!mysql_db_query("Proyecto", $query)) {
            return false;
        }

        $this->desconectar($conexion);


    }

    //Funcion que elimina un centro de apoyo de la Tabla de Base de Datos
    function eliminarCentroApoyo($idcentro){

    }

    ////////////////////////////////////////////////////////////////////////////
                         // Base de Datos//
    ////////////////////////////////////////////////////////////////////////////

    function conectarse(){
        
        // Conecta con la base de datos.
        if(!($link = mysql_connect("localhost", "root", ""))) {
            echo "Error conectando con usuario: " . $user . " y clave: " . $password;
            exit();
        }

        // Selecciona la base de datos.
        if(!mysql_select_db("usb", $link)) {
            echo "Error seleccionando la base de datos: " . $bd;
            exit();
        };
    }

    function SelectBD($conexion){
        

        return $conexion;

    }

    function save($query){
     // Hace la consulta en la base de datos
       mysql_db_query("Proyecto", $query);
    }




    ////////////////////////////////Viejos//////////////////////////////////////

    //Con este metodo se conecta a la base de datos.
    function conectar($host, $user, $password) {

        // Conecta con la base de datos.
        if(!($link = mysql_connect($host, $user, $password))) {
            echo "Error conectando con usuario: " . $user . " y clave: " . $password;
            exit();
        }

        return $link;
    }

    // Con este metodo se selecciona la base de datos.
    function seleccionarBD($link, $bd) {
        // Selecciona la base de datos.
        if(!mysql_select_db($bd, $link)) {
            echo "Error seleccionando la base de datos: " . $bd;
            exit();
        };

        return $link;
    }

    // Funcion para desconectarse de la base de datos.
    function desconectar($link) {
        mysql_close($link);
    }



}
?>
